package com.foxire.innerclass;

public class Outer {
    public static String schoolName = "foxire";

    public void test() {
        System.out.println("Outer.test()");
    }
    private int age;
    public void run(){}

    // 成员内部类：无static修饰，属于外部类的对象持有的
    public class Inner {
        private String name;
        // 有参构造器
        public Inner(String name) {
            this.name = name;
        }
        // 构造器
        public Inner() {}

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public void show() {
            System.out.println("Outer.Inner.show()");
            // 成员内部类可以访问外部类的所有成员
            System.out.println(schoolName);
            test();
            // 也可以直接访问外部类的实例成员
            System.out.println(age);
            run();
            System.out.println(this);// 自己的对象
            System.out.println(Outer.this);// 自己的外部类对象
        }
    }
}
